System.Collections.ObjectModel.KeyedCollection<TKey,TItem>. ChangeItemKey, metoda

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

Metoda ChangeItemKey(TItem, TKey) nie modyfikuje klucza osadzonego w itemelemencie ; po prostu zastępuje klucz zapisany w słowniku odnośników. W związku z tym, jeśli newKey różni się od klucza osadzonego w itemsystemie , nie można uzyskać dostępu item przy użyciu klucza zwróconego przez GetKeyForItem.

Ta metoda nic nie robi, jeśli KeyedCollection<TKey,TItem> nie ma słownika odnośników.

Każdy klucz w obiekcie KeyedCollection<TKey,TItem> musi być unikatowy. Kluczem nie może być null.

Ta metoda jest operacją O(1).

Uwagi dotyczące implementatorów

Przed zmodyfikowaniem klucza osadzonego w elemencie należy wywołać tę metodę, aby zaktualizować klucz w słowniku odnośników. Jeśli próg tworzenia słownika wynosi -1, wywołanie tej metody nie jest konieczne.

Nie ujawniaj ChangeItemKey metody jako publicznej metody klasy pochodnej. Nieprawidłowe użycie tej metody powoduje, że słownik odnośników nie jest zsynchronizowany z kluczami elementów. Na przykład ustawienie klucza na null , a następnie ustawienie go na inną wartość powoduje dodanie wielu kluczy dla elementu do słownika odnośników. Uwidocznij tę metodę wewnętrznie, aby zezwolić na modyfikowanie kluczy elementów: gdy klucz elementu ulegnie zmianie, ta metoda służy do zmiany klucza w słowniku odnośników.